Similar Question
Solution Tips
方案一: 归并 + 中位数
var findMedianSortedArrays = function(nums1, nums2) {
// 直接归并排序不就好了? 执行归并排序的 merge 操作, 并且记录中位数的位置就行了
const len1 = nums1.length;
const len2 = nums2.length;
const mid = Math.floor((len1 + len2) / 2);
const isEven = len1 + len2 % 2 === 0;
// 如果是奇数, 那就是 mid, 如果是偶数, 就是 mid + mid + 1 除以 2 ?
let i = 0;
let j = 0;
const res = [];
while (i < len1 || j < len2) {
const a = nums1[i] ?? Number.MAX_SAFE_INTEGER;
const b = nums2[j] ?? Number.MAX_SAFE_INTEGER;
// push 小的那个
if (a <= b) {
res.push(nums1[i]);
i++;
}
else {
res.push(nums2[j]);
j++;
}
if (res.length === mid + 1) {
if (isEven) {
return (res[res.length - 1] + res[res.length - 2]) / 2
}
else {
return res[res.length - 1];
}
}
}
};
// test
const obj = {}
// let nums1 = [1,3], nums2 = [2]
// let nums1 = [1,2], nums2 = [3,4]
let nums1 = [], nums2 = [1];
console.log(findMedianSortedArrays(nums1, nums2))